//
//  ZLCollectionView.h
//  ZLCustomViews
//
//  Created by 赵振磊 on 2024/6/19.
//

#import <UIKit/UIKit.h>
#import "ZLListCallBack.h"

NS_ASSUME_NONNULL_BEGIN

@interface ZLCollectionView : UICollectionView
/// 组数
@property (nonatomic, copy) ZLSectionNumber sectionNumber;
/// 行数
@property (nonatomic, copy) ZLRowNumber itemNumber;
/// cellsize
@property (nonatomic, copy) ZLItemSize itemSize;
/// cell
@property (nonatomic, copy) ZLIndexPathItem indexPathCell;
/// 点击cell
@property (nonatomic, copy) ZLSelectCell selectCell;
/// page下标
@property (nonatomic, copy) ZLPageChange pageChange;
/// section header size
@property (nonatomic, copy) ZLHeaderFooterSize sectionHeaderSize;
/// header
@property (nonatomic, copy) ZLCSectionHeaderFooter sectionHeader;
/// section header 高度
@property (nonatomic, copy) ZLHeaderFooterSize sectionFooterSize;
/// footer
@property (nonatomic, copy) ZLCSectionHeaderFooter sectionFooter;
/// 行间隙
@property (nonatomic, copy) ZLSpacing rowSpacing;
/// 列间隙
@property (nonatomic, copy) ZLSpacing colSpacing;

/// 注册cell
- (void)registerCell:(NSArray<NSString *> *)cellNameArray;
- (void)registerCellNib:(NSArray<NSString *> *)nibNameArray;
/// 注册头部
- (void)registerHeader:(NSString *)viewClass;
- (void)registerHeaderNib:(NSString *)nibViewClass;
/// 注册尾部
- (void)registerFooter:(NSString *)viewClass;
- (void)registerFooterNib:(NSString *)nibViewClass;

- (void)sectionNumber:(ZLSectionNumber)sectionNumber
           itemNumber:(ZLRowNumber)itemNumber
           rowSpacing:(ZLSpacing)rowSpacing
           colSpacing:(ZLSpacing)colSpacing
    sectionHeaderSize:(ZLHeaderFooterSize)sectionHeaderSize
    sectionFooterSize:(ZLHeaderFooterSize)sectionFooterSize
             itemSize:(ZLItemSize)itemSize
        sectionHeader:(ZLCSectionHeaderFooter)sectionHeader
        sectionFooter:(ZLCSectionHeaderFooter)sectionFooter
        indexPathCell:(ZLIndexPathItem)indexPathCell
           selectCell:(ZLSelectCell)selectCell;

- (void)sectionNumber:(ZLSectionNumber)sectionNumber
           itemNumber:(ZLRowNumber)itemNumber
           rowSpacing:(ZLSpacing)rowSpacing
           colSpacing:(ZLSpacing)colSpacing
             itemSize:(ZLItemSize)itemSize
        indexPathCell:(ZLIndexPathItem)indexPathCell
           selectCell:(ZLSelectCell)selectCell;

- (void)sectionNumber:(ZLSectionNumber)sectionNumber
           itemNumber:(ZLRowNumber)itemNumber
             itemSize:(ZLItemSize)itemSize
        indexPathCell:(ZLIndexPathItem)indexPathCell
           selectCell:(ZLSelectCell)selectCell;

- (void)sectionNumber:(ZLSectionNumber)sectionNumber
           itemNumber:(ZLRowNumber)itemNumber
             itemSize:(ZLItemSize)itemSize
        indexPathCell:(ZLIndexPathItem)indexPathCell;

- (void)pageChanged:(ZLPageChange)pageChange;

@end

#pragma mark - 布局

@interface ZLCircleLayout : UICollectionViewLayout
@property (nonatomic, assign) CGFloat origin;
/// 圆心
@property (nonatomic, assign) CGPoint center;
/// 半径
@property (nonatomic, assign) CGFloat radius;
@end

NS_ASSUME_NONNULL_END
